<?php
$http = new swoole_http_server('0.0.0.0', 9501);
$http->set([
    'reactor_num' => 2, //reactor thread num
    'task_worker_num' => 2,
    'worker_num' => 4,    //worker process num
    'backlog' => 128,   //listen backlog
    'max_request' => 50,
]);
$http->on('request', function(swoole_http_request $request, swoole_http_response $response)use($http){
    $res = $http->taskwait([123]);

    $response->end($res);
});
$http->on('Task','onTask');
$http->on('Finish','onFinish');
/**
 * @param $serv
 * @param $task_id
 * @param $from_id
 * @param $data
 * @return string
 * @throws \Swoole\Mysql\Exception
 */
function onTask($serv,$task_id, $from_id, $data){

//        $statement = $this->pdo->prepare($data['sql']);
//        $statement -> execute($data['param']);
//        $result = $statement->fetchAll(PDO::FETCH_ASSOC);
//    $db = new swoole_mysql;
//    $server = array(
//        'host' => '0.0.0.0',
//        'port' => 3306,
//        'user' => 'for_novel',
//        'password' => 'mm3PCmGB7194zReM',
//        'database' => 'novel',
//        'charset' => 'utf8mb4', //指定字符集
//        'timeout' => 2,  // 可选：连接超时时间（非查询超时时间），默认为SW_MYSQL_CONNECT_TIMEOUT（1.0）
//    );
//    $db->connect($server, function ($db, $r) use($response){
//        if ($r === false) {
//            var_dump($db->connect_errno, $db->connect_error);
//            die;
//        }
//        $sql = 'select * from `t_user` where id = 12';
//        $db->query($sql, function(swoole_mysql $db, $r)use($response) {
//            if ($r === false)
//            {
//                var_dump($db->error, $db->errno);
//            }
//            elseif ($r === true )
//            {
//                var_dump($db->affected_rows, $db->insert_id);
//            }
////            $response->end('789');
////            var_dump($r);
//            $db->close();
//        });
//    });
//    sleep(5);
//    $serv->send($data['fd'], 'aaaaaaaaaaaaaaaa');
    return 'aaaaaaaaaaaaa';
}
function onFinish($serv, $task_id, $data){
//    $data = json_decode($data, true);
    return $data;
}
$http->start();